package com.loong.loong.hik.api.entity.resource;

import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.time.LocalDateTime;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import lombok.Data;

/**
 * 【编码设备】EncodeDeviceDTO属性说明
 * @author jinyiang
 * @date 2023/3/22 10:03
 */
@Data
@TableName("hik_resource_encode_device")
public class HikResourceEncodeDevice {

	private static final long serialVersionUID = 1L;

	/**
	 * 所属服务编号
	 */
	@TableField("belong_index_code")
	@NotBlank(message = "所属服务编号不能为空")
	@Size(max = 64, message = "所属服务编号长度不能超过64")
	private String belongIndexCode;

	/**
	 * 能力集
	 */
	@TableField("capability")
	@NotBlank(message = "能力集不能为空")
	@Size(max = 128, message = "能力集长度不能超过128")
	private String capability;

	/**
	 * 设备驱动
	 */
	@TableField("device_key")
	@NotBlank(message = "设备驱动不能为空")
	@Size(max = 64, message = "设备驱动长度不能超过64")
	private String deviceKey;

	/**
	 * 设备系列
	 */
	@TableField("device_type")
	@NotBlank(message = "设备系列不能为空")
	@Size(max = 32, message = "设备系列长度不能超过32")
	private String deviceType;

	/**
	 * 设备序列号
	 */
	@TableField("dev_serial_num")
	@NotBlank(message = "设备序列号不能为空")
	@Size(max = 128, message = "设备序列号长度不能超过128")
	private String devSerialNum;

	/**
	 * 主动设备编号
	 */
	@TableField("device_code")
	@NotBlank(message = "主动设备编号不能为空")
	@Size(max = 64, message = "主动设备编号长度不能超过64")
	private String deviceCode;

	/**
	 * 资源唯一编码
	 */
	@TableId(value = "index_code")
	@NotBlank(message = "资源唯一编码不能为空")
	@Size(max = 64, message = "资源唯一编码长度不能超过64")
	private String indexCode;

	/**
	 * 设备ip
	 */
	@TableField("ip")
	@NotBlank(message = "设备ip不能为空")
	@Size(max = 20, message = "设备ip长度不能超过20")
	private String ip;

	/**
	 * 厂商
	 */
	@TableField("manufacturer")
	@Size(max = 32, message = "厂商长度不能超过32")
	private String manufacturer;

	/**
	 * 资源名称
	 */
	@TableField("name")
	@NotBlank(message = "资源名称不能为空")
	@Size(max = 32, message = "资源名称长度不能超过32")
	private String name;

	/**
	 * 网域
	 */
	@TableField("net_zone_id")
	@Size(max = 32, message = "网域长度不能超过32")
	private String netZoneId;

	/**
	 * 端口
	 */
	@TableField("port")
	@NotBlank(message = "端口不能为空")
	@Size(max = 32, message = "端口长度不能超过32")
	private String port;

	/**
	 * 所属区域
	 */
	@TableField("region_index_code")
	@NotBlank(message = "所属区域不能为空")
	@Size(max = 64, message = "所属区域长度不能超过64")
	private String regionIndexCode;

	/**
	 * 所属区域路径
	 */
	@TableField("region_path")
	@NotBlank(message = "所属区域路径不能为空")
	@Size(max = 340, message = "所属区域路径长度不能超过340")
	private String regionPath;

	/**
	 * 资源类型
	 */
	@TableField("resource_type")
	@NotBlank(message = "资源类型不能为空")
	@Size(max = 32, message = "资源类型长度不能超过32")
	private String resourceType;
	/**
	 * 接入协议
	 */
	@TableField("treaty_type")
	@NotBlank(message = "接入协议不能为空")
	@Size(max = 32, message = "接入协议长度不能超过32")
	private String treatyType;

	/**
	 * 创建时间
	 */
	@TableField(value = "create_time", fill = FieldFill.INSERT)
	@NotNull(message = "创建时间不能为空")
	private LocalDateTime createTime;

	/**
	 * 更新时间
	 */
	@TableField(value = "update_time", fill = FieldFill.INSERT_UPDATE)
	@NotNull(message = "更新时间不能为空")
	private LocalDateTime updateTime;
}
